/*
*  Copyright 2019-2020 Zheng Jie
*
*  Licensed under the Apache License, Version 2.0 (the "License");
*  you may not use this file except in compliance with the License.
*  You may obtain a copy of the License at
*
*  http://www.apache.org/licenses/LICENSE-2.0
*
*  Unless required by applicable law or agreed to in writing, software
*  distributed under the License is distributed on an "AS IS" BASIS,
*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*  See the License for the specific language governing permissions and
*  limitations under the License.
*/
package me.zhengjie.business.domain;

import lombok.Data;
import cn.hutool.core.bean.BeanUtil;
import io.swagger.annotations.ApiModelProperty;
import cn.hutool.core.bean.copier.CopyOptions;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import javax.validation.constraints.*;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.io.Serializable;

/**
* @website https://el-admin.vip
* @description /
* @author xiahongbo
* @date 2025-01-12
**/
@Entity
@Data
@Table(name="PRIC_COST_DETL")
public class PricCostDetl implements Serializable {

    @Id
    @GenericGenerator(name = "hibernate-uuid", strategy = "uuid")
    @GeneratedValue(generator = "hibernate-uuid")
    @Column(name = "PRIC_COST_DETL_ID")
    @ApiModelProperty(value = "主键ID")
    private String pricCostDetlId;

    @Column(name = "LONGTERM_EXE_DETL_CODG")
    @ApiModelProperty(value = "长期护理执行明细编码")
    private String longtermExeDetlCodg;

    @Column(name = "LONGTERM_PLAN_DETL_CODG")
    @ApiModelProperty(value = "长期护理计划明细编码")
    private String longtermPlanDetlCodg;

    @Column(name = "LONGTERM_DETL_ID")
    @ApiModelProperty(value = "长期护理明细ID")
    private String longtermDetlId;

    @Column(name = "LONGTERM_BCHNO")
    @ApiModelProperty(value = "长期护理批次号")
    private String longtermBchno;

    @Column(name = "LONGTERM_TASK_REC_BCHNO")
    @ApiModelProperty(value = "长期护理任务接收批次号")
    private String longtermTaskRecBchno;

    @Column(name = "LONGTERM_PLAN_DETL_ID")
    @ApiModelProperty(value = "长期护理计划明细ID")
    private String longtermPlanDetlId;

    @Column(name = "LONGTERM_SERV_TYPE")
    @ApiModelProperty(value = "长期护理服务类型")
    private String longtermServType;

    @Column(name = "LONGTERM_SERVITEM_NO")
    @ApiModelProperty(value = "长期护理服务项目编号")
    private String longtermServitemNo;

    @Column(name = "LONGTERM_SERVITEM_NAME")
    @ApiModelProperty(value = "长期护理服务项目名称")
    private String longtermServitemName;

    @Column(name = "MEDINS_LIST_NAME")
    @ApiModelProperty(value = "医药机构目录名称")
    private String medinsListName;

    @Column(name = "LONGTERM_PLAN_BEGNTIME")
    @ApiModelProperty(value = "护理计划开始时间")
    private Timestamp longtermPlanBegntime;

    @Column(name = "LONGTERM_PLAN_ENDTIME")
    @ApiModelProperty(value = "护理计划结束时间")
    private Timestamp longtermPlanEndtime;

    @Column(name = "LONGTERM_ACT_BEGNTIME")
    @ApiModelProperty(value = "护理实际开始时间")
    private Timestamp longtermActBegntime;

    @Column(name = "LONGTERM_ACT_ENDTIME")
    @ApiModelProperty(value = "护理实际结束时间")
    private Timestamp longtermActEndtime;

    @Column(name = "INSU_ADMDVS")
    @ApiModelProperty(value = "参保所属医保区划")
    private String insuAdmdvs;

    @Column(name = "INSUTYPE")
    @ApiModelProperty(value = "参保险种")
    private String insutype;

    @Column(name = "LONGTERM_DURA")
    @ApiModelProperty(value = "长期护理时长")
    private Long longtermDura;

    @Column(name = "USED_FRQU")
    @ApiModelProperty(value = "使用频次")
    private String usedFrqu;

    @Column(name = "LONGTERM_DETL_SOUC")
    @ApiModelProperty(value = "长期护理明细来源")
    private String longtermDetlSouc;

    @Column(name = "PRIC")
    @ApiModelProperty(value = "单价")
    private BigDecimal pric;

    @Column(name = "SIN_CNT")
    @ApiModelProperty(value = "单次数量")
    private BigDecimal sinCnt;

    @Column(name = "PRCUNT_NO")
    @ApiModelProperty(value = "计价单位编号")
    private String prcuntNo;

    @Column(name = "NURSCARE_PSN_NAME")
    @ApiModelProperty(value = "护理人员姓名")
    private String nurscarePsnName;

    @Column(name = "NURSCARE_PSN_NO")
    @ApiModelProperty(value = "护理人员编号")
    private String nurscarePsnNo;

    @Column(name = "NURSCARE_PSN_MOB")
    @ApiModelProperty(value = "护理人员手机号")
    private String nurscarePsnMob;

    @Column(name = "AMT")
    @ApiModelProperty(value = "金额")
    private BigDecimal amt;

    @Column(name = "PSN_NO")
    @ApiModelProperty(value = "人员编码")
    private String psnNo;

    @Column(name = "CERT_TYPE")
    @ApiModelProperty(value = "证件类型")
    private String certType;

    @Column(name = "CERTNO")
    @ApiModelProperty(value = "证件号码")
    private String certno;

    @Column(name = "PSN_NAME")
    @ApiModelProperty(value = "人员姓名")
    private String psnName;

    @Column(name = "NURSCARE_WAY")
    @ApiModelProperty(value = "护理方式")
    private String nurscareWay;

    @Column(name = "LONGTERM_EVAL_LV")
    @ApiModelProperty(value = "长期护理评估等级")
    private String longtermEvalLv;

    @Column(name = "REG_BEGNTIME")
    @ApiModelProperty(value = "入住时间")
    private Timestamp regBegntime;

    @Column(name = "LONGTERM_REG_ID")
    @ApiModelProperty(value = "登记ID")
    private String longtermRegId;

    @Column(name = "LONGTERM_TRT_APPY_ID")
    @ApiModelProperty(value = "待遇申请ID")
    private String longtermTrtAppyId;

    @Column(name = "NURSCARE_ORG_NO")
    @ApiModelProperty(value = "护理机构编号")
    private String nurscareOrgNo;

    @Column(name = "NURSCARE_ORG_NAME")
    @ApiModelProperty(value = "护理机构名称")
    private String nurscareOrgName;

    @Column(name = "SELFPAY_PROP_TYPE")
    @ApiModelProperty(value = "目录自付比例类别")
    private String selfpayPropType;

    @Column(name = "SELFPAY_PROP")
    @ApiModelProperty(value = "自付比例")
    private BigDecimal selfpayProp;

    @Column(name = "CHRGITM_LV")
    @ApiModelProperty(value = "收费项目等级")
    private String chrgitmLv;

    @Column(name = "SERV_CONT")
    @ApiModelProperty(value = "服务内容")
    private String servCont;

    @Column(name = "OWNPAY_FLAG")
    @ApiModelProperty(value = "自费标志")
    private String ownpayFlag;

    @Column(name = "HILIST_TYPE")
    @ApiModelProperty(value = "医疗目录类型")
    private String hilistType;

    @Column(name = "FIX_BLNG_ADMDVS")
    @ApiModelProperty(value = "定点归属医保区划")
    private String fixBlngAdmdvs;

    @Column(name = "MED_TYPE")
    @ApiModelProperty(value = "医疗类别")
    private String medType;

    @Column(name = "FEE_OCUR_TIME")
    @ApiModelProperty(value = "费用发生时间")
    private Timestamp feeOcurTime;

    @Column(name = "MED_LIST_CODG")
    @ApiModelProperty(value = "医疗目录编码")
    private String medListCodg;

    @Column(name = "MED_LIST_NAME")
    @ApiModelProperty(value = "医疗目录名称")
    private String medListName;

    @Column(name = "MEDINS_LIST_CODG")
    @ApiModelProperty(value = "医药机构目录编码")
    private String medinsListCodg;

    @Column(name = "DET_ITEM_FEE_SUMAMT")
    @ApiModelProperty(value = "明细项目费用总额")
    private BigDecimal detItemFeeSumamt;

    @Column(name = "BILG_DEPT_CODG")
    @ApiModelProperty(value = "开单科室编码")
    private String bilgDeptCodg;

    @Column(name = "BILG_DEPT_NAME")
    @ApiModelProperty(value = "开单科室名称")
    private String bilgDeptName;

    @Column(name = "BILG_DR_CODG")
    @ApiModelProperty(value = "开单医生编码")
    private String bilgDrCodg;

    @Column(name = "BILG_DR_NAME")
    @ApiModelProperty(value = "开单医师姓名")
    private String bilgDrName;

    @Column(name = "ACORD_DEPT_CODG")
    @ApiModelProperty(value = "受单科室编码")
    private String acordDeptCodg;

    @Column(name = "ACORD_DEPT_NAME")
    @ApiModelProperty(value = "受单科室名称")
    private String acordDeptName;

    @Column(name = "ORDERS_DR_CODE")
    @ApiModelProperty(value = "受单医生编码")
    private String ordersDrCode;

    @Column(name = "ORDERS_DR_NAME")
    @ApiModelProperty(value = "受单医生姓名")
    private String ordersDrName;

    @Column(name = "HOSP_APPR_FLAG")
    @ApiModelProperty(value = "医院审批标志")
    private String hospApprFlag;

    @Column(name = "TCMDRUG_USED_WAY")
    @ApiModelProperty(value = "中药使用方式")
    private String tcmdrugUsedWay;

    @Column(name = "ETIP_FLAG")
    @ApiModelProperty(value = "外检标志")
    private String etipFlag;

    @Column(name = "ETIP_HOSP_CODE")
    @ApiModelProperty(value = "外检医院编码")
    private String etipHospCode;

    @Column(name = "DSCG_TKDRUG_FLAG")
    @ApiModelProperty(value = "出院带药标志")
    private String dscgTkdrugFlag;

    @Column(name = "MEMO")
    @ApiModelProperty(value = "备注")
    private String memo;

    @Column(name = "COMB_NO")
    @ApiModelProperty(value = "组套编号")
    private String combNo;

    @Column(name = "LONGTERM_EXE_DETL_CODG1")
    @ApiModelProperty(value = "长期护理执行明细编码")
    private String longtermExeDetlCodg1;

    @Column(name = "NURSCARE_PSN_FLAG")
    @ApiModelProperty(value = "护理人员标志")
    private String nurscarePsnFlag;

    @Column(name = "MEDINS_PRIC")
    @ApiModelProperty(value = "机构定价")
    private BigDecimal medinsPric;

    @Column(name = "STD_PRIC")
    @ApiModelProperty(value = "标准定价")
    private BigDecimal stdPric;

    @Column(name = "ASST_TYPE")
    @ApiModelProperty(value = "辅具类别")
    private String asstType;

    @Column(name = "ASST_PROD_TYPE")
    @ApiModelProperty(value = "辅具产品类别")
    private String asstProdType;

    @Column(name = "ASST_PRDR")
    @ApiModelProperty(value = "辅具厂商")
    private String asstPrdr;

    @Column(name = "ASST_SPEC")
    @ApiModelProperty(value = "辅具规格")
    private String asstSpec;

    @Column(name = "HILIST_CODE")
    @ApiModelProperty(value = "医保目录编码")
    private String hilistCode;

    @Column(name = "HILIST_NAME")
    @ApiModelProperty(value = "医保目录名称")
    private String hilistName;


    @Column(name = "PRIC_RGST_INS_ID")
    @ApiModelProperty(value = "登记主键ID")
    private String pricRgstInsId;

    @Column(name = "SFSC")
    @ApiModelProperty(value = "是否上传")
    private String sfsc;



    public void copy(PricCostDetl source){
        BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
    }
}